local ls = require("luasnip")
local s = ls.snippet
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local fmt = require("luasnip.extras.fmt").fmt

-- 获取当前文件类型的注释符号
local function get_comment_string()
    local comment = vim.bo.commentstring
    if comment == "" then
        return "// "  -- 默认使用 C 风格注释
    end
    -- 处理特殊情况
    if comment == "{-%s-}" then  -- Haskell
        return "-- "
    end
    -- 将 %s 替换为实际内容的位置
    return comment:gsub("%%s", "")
end

-- 获取当前时间的函数
local function current_date()
    return os.date("%Y-%m-%d %H:%M:%S")
end

-- TODO 片段
return {
    s("todo", {
        f(function()
            return get_comment_string()
        end),
        t("TODO: "),
        i(1, "todo content"),
        t(" ("),
        f(function()
            return os.date("%Y-%m-%d")
        end),
        t(")"),
    }),
    s("date", {
        f(current_date)
    }),
}
